Assembly - number in hindi

Prahlad Godara ------ From DOOSEEP

Content

असेंबली भाषा संख्यात्मक डेटा और अंकगणितीय निर्देश बाइनरी डेटा पर कार्य करते हैं। जब संख्याएँ स्क्रीन पर प्रदर्शित होती हैं या कीबोर्ड से दर्ज की जाती हैं, तो वे ASCII रूप में होती हैं। हमें डेटा को समझने के लिए बाइनरी से ASCII या डेसीमल नंबर में कन्वर्ट करना होता है।

numbers in assembly language

असेम्बली लैंग्वेज प्रोग्रामिंग संख्या को बाइनरी रूप में अधिक कुशल तरीके से संसाधित करने की अनुमति देती है। दशमलव संख्याओं को दो रूपों में प्रदर्शित किया जा सकता है-

  1. ASCII form
  2. BCD or Binary Coded Decimal form

ASCII Representation

ASCII प्रतिनिधित्व में, दशमलव संख्या को ASCII वर्णों की एक स्ट्रिंग के रूप में संग्रहीत किया जाता है। उदाहरण के लिए, दशमलव मान 1234 को इस रूप में संग्रहीत किया जाता है-.

 31	32	33	34H 49H 

जहाँ, 31H 1 के लिए ASCII मान है, 32H 2 के लिए ASCII मान है, 39H 9 के लिए ASCII मान है, इत्यादि।

ASCII प्रतिनिधित्व में किसी संख्या को संसाधित करने के लिए चार निर्देश हैं-
  1. AAA − ASCII Adjust After Addition
  2. AAS − ASCII Adjust After Subtraction
  3. AAM − ASCII Adjust After Multiplication
  4. AAD − ASCII Adjust Before Division
ये निर्देश कोई ऑपरेंड नहीं लेते हैं और AL रजिस्टर में आवश्यक ऑपरेंड को मान लेते हैं।

BCD Representation

बीसीडी प्रतिनिधित्व दो प्रकार के होते हैं-
  1. Unpacked BCD
  2. Pack BCD

अनपैक्ड बीसीडी प्रतिनिधित्व में, प्रत्येक बाइट एक दशमलव अंक के बाइनरी समकक्ष को संग्रहीत करता है। उदाहरण के लिए, संख्या 1234 को इस रूप में संग्रहीत किया जाता है-

01	02	03	04H

इन नंबरों को प्रोसेस करने के लिए दो निर्देश हैं -

  1. AAM - Adjust After ASCII Multiplication
  2. AAD - Adjust before ASCII division

चार ASCII समायोजित निर्देश, AAA, AAS, AAM और AAD, का उपयोग अनपैक्ड BCD प्रतिनिधित्व के साथ भी किया जा सकता है। पैक्ड बीसीडी प्रतिनिधित्व में, प्रत्येक अंक को चार बिट्स का उपयोग करके संग्रहीत किया जाता है। दो दशमलव अंक एक बाइट में पैक किए जाते हैं। उदाहरण के लिए, संख्या 1234 को इस रूप में संग्रहीत किया जाता है -

12	34H
इन नंबरों को संसाधित करने के लिए दो निर्देश हैं-
  1. DAA − Decimal Adjustment After Addition
  2. DAS - Decimal Adjustment After Subtraction
  3. पैक्ड बीसीडी प्रतिनिधित्व में गुणा और भाग के लिए कोई समर्थन नहीं है।

Example

निम्न प्रोग्राम दो 5-अंकीय दशमलव संख्या जोड़ता है और योग प्रदर्शित करता है। -


  section	.text
  global _start        ;must be declared for using gcc

_start:	                ;tell linker entry point

  mov     esi, 4       ;pointing to the rightmost digit
  mov     ecx, 5       ;num of digits
  clc
add_loop:  
  mov 	al, [num1 + esi]
  adc 	al, [num2 + esi]
  aaa
  pushf
  or 	al, 30h
  popf
 
  mov	[sum + esi], al
  dec	esi
  loop	add_loop
 
  mov	edx,len	        ;message length
  mov	ecx,msg	        ;message to write
  mov	ebx,1	        ;file descriptor (stdout)
  mov	eax,4	        ;system call number (sys_write)
  int	0x80	        ;call kernel
 
  mov	edx,5	        ;message length
  mov	ecx,sum	        ;message to write
  mov	ebx,1	        ;file descriptor (stdout)
  mov	eax,4	        ;system call number (sys_write)
  int	0x80	        ;call kernel
 
  mov	eax,1	        ;system call number (sys_exit)
  int	0x80	        ;call kernel

section	.data
msg db 'The Sum is:',0xa	
len equ $ - msg			
num1 db '12345'
num2 db '23456'
sum db '  

जब उपरोक्त कोड संकलित और निष्पादित किया जाता है, तो यह निम्न परिणाम उत्पन्न करता है−

 The Sum is: 35801


Read in- English
Tags- This blogcreates content similar to stackoverflow geeks for geeks tutorialspoint w3schools and dooseep
कोई टिप्पणी नहीं:
एक टिप्पणी भेजें